package pe.gob.servir.apps.censodirectivo.persistence.entity;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;


/**
 * The persistent class for the TBL_UNIDAD_ORGANICAS database table.
 * 
 */
@Entity
@Table(name="TBL_UNIDAD_ORGANICAS")
@NamedQuery(name="TblUnidadOrganica.findAll", query="SELECT t FROM TblUnidadOrganica t")
public class TblUnidadOrganica implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name="UNIDAD_ORGANICA_ID")
	private long unidadOrganicaId;

	@Column(name="ESTADO_REGISTRO")
	private String estadoRegistro;

	@Column(name="FECHA_CREACION")
	private Date fechaCreacion;

	@Column(name="FECHA_MODIFICACION")
	private Date fechaModificacion;

	@Column(name="ORGANO_ID")
	private java.math.BigDecimal organoId;

	@Column(name="PUESTO_JEFE_INMEDIATO")
	private String puestoJefeInmediato;

	@Column(name="UNIDAD_ORGANICA")
	private String unidadOrganica;

	@Column(name="USUARIO_CREADOR")
	private String usuarioCreador;

	@Column(name="USUARIO_MODIFICADOR")
	private String usuarioModificador;

	//bi-directional many-to-one association to TblPuestoEspecifico
	@OneToMany(mappedBy="tblUnidadOrganica", fetch=FetchType.EAGER)
	private List<TblPuestoEspecifico> tblPuestoEspecificos;

	public TblUnidadOrganica() {
	}

	public long getUnidadOrganicaId() {
		return this.unidadOrganicaId;
	}

	public void setUnidadOrganicaId(long unidadOrganicaId) {
		this.unidadOrganicaId = unidadOrganicaId;
	}

	public String getEstadoRegistro() {
		return this.estadoRegistro;
	}

	public void setEstadoRegistro(String estadoRegistro) {
		this.estadoRegistro = estadoRegistro;
	}

	public Date getFechaCreacion() {
		return this.fechaCreacion;
	}

	public void setFechaCreacion(Date fechaCreacion) {
		this.fechaCreacion = fechaCreacion;
	}

	public Date getFechaModificacion() {
		return this.fechaModificacion;
	}

	public void setFechaModificacion(Date fechaModificacion) {
		this.fechaModificacion = fechaModificacion;
	}

	public java.math.BigDecimal getOrganoId() {
		return this.organoId;
	}

	public void setOrganoId(java.math.BigDecimal organoId) {
		this.organoId = organoId;
	}

	public String getPuestoJefeInmediato() {
		return this.puestoJefeInmediato;
	}

	public void setPuestoJefeInmediato(String puestoJefeInmediato) {
		this.puestoJefeInmediato = puestoJefeInmediato;
	}

	public String getUnidadOrganica() {
		return this.unidadOrganica;
	}

	public void setUnidadOrganica(String unidadOrganica) {
		this.unidadOrganica = unidadOrganica;
	}

	public String getUsuarioCreador() {
		return this.usuarioCreador;
	}

	public void setUsuarioCreador(String usuarioCreador) {
		this.usuarioCreador = usuarioCreador;
	}

	public String getUsuarioModificador() {
		return this.usuarioModificador;
	}

	public void setUsuarioModificador(String usuarioModificador) {
		this.usuarioModificador = usuarioModificador;
	}

	public List<TblPuestoEspecifico> getTblPuestoEspecificos() {
		return this.tblPuestoEspecificos;
	}

	public void setTblPuestoEspecificos(List<TblPuestoEspecifico> tblPuestoEspecificos) {
		this.tblPuestoEspecificos = tblPuestoEspecificos;
	}

	public TblPuestoEspecifico addTblPuestoEspecifico(TblPuestoEspecifico tblPuestoEspecifico) {
		getTblPuestoEspecificos().add(tblPuestoEspecifico);
		tblPuestoEspecifico.setTblUnidadOrganica(this);

		return tblPuestoEspecifico;
	}

	public TblPuestoEspecifico removeTblPuestoEspecifico(TblPuestoEspecifico tblPuestoEspecifico) {
		getTblPuestoEspecificos().remove(tblPuestoEspecifico);
		tblPuestoEspecifico.setTblUnidadOrganica(null);

		return tblPuestoEspecifico;
	}

}